import { register } from '../../../util/util'; // 导入注册方法，路径根据实际情况修改

Page({
  data: {
    sexShow: false,
    sexList: [{
        text: '男',
        value: '男'
      },
      {
        text: '女',
        value: '女'
      }
    ],
    info: {
      user: '',
      pass: '',
      pass2: '',
      phone: '',
      city: '',
      avatar: 'cloud://tourplan-2gaddhh5ba2cfaec.746f-tourplan-2gaddhh5ba2cfaec-1322500727/景点图片/user.png'
    }
  },

  formSubmit(e) {
    const formData = e.detail.value;
    console.log('表单数据：', formData); // 调试用，查看表单数据

    // 表单验证
    if (!formData.user || !formData.pass || !formData.pass2 || !formData.phone || !formData.city) {
      wx.showToast({
        title: '请填写完整信息',
        icon: 'none'
      });
      return;
    }

    // 验证两次密码是否一致
    if (formData.pass !== formData.pass2) {
      wx.showToast({
        title: '两次密码不一致',
        icon: 'none'
      });
      return;
    }

    // 验证手机号格式
    if (!/^1[3-9]\d{9}$/.test(formData.phone)) {
      wx.showToast({
        title: '手机号格式不正确',
        icon: 'none'
      });
      return;
    }

    // 检查用户名是否已存在
    wx.cloud.database().collection('zyzl_userList')
      .where({
        user: formData.user
      })
      .get()
      .then(res => {
        if (res.data.length > 0) {
          wx.showToast({
            title: '用户名已存在',
            icon: 'none'
          });
        } else {
          // 添加新用户
          wx.cloud.database().collection('zyzl_userList').add({
            data: {
              user: formData.user,
              pass: formData.pass,
              phone: formData.phone,
              city: formData.city,
              avatar: this.data.info.avatar
            }
          })
          .then(() => {
            wx.showToast({
              title: '注册成功',
              icon: 'success',
              duration: 2000,
              success: () => {
                setTimeout(() => {
                  wx.navigateBack();
                }, 2000);
              }
            });
          })
          .catch(err => {
            console.error('注册失败：', err);
            wx.showToast({
              title: '注册失败，请重试',
              icon: 'none'
            });
          });
        }
      });
  },

  // 跳转到登录页面
  redirectToLogin() {
    wx.navigateBack();
  },

  async registerUser(userInfo) {
    try {
      if (this.data.info.avatar !== '') {
        userInfo.avatar = this.data.info.avatar;
      }
      
      // 调用注册方法
      const result = await register(userInfo);
      console.log(userInfo.avatar)
      if (result === 1) {
        wx.showToast({
          title: '注册成功',
          icon: 'success'
        });
          // 在注册成功后延迟 1 秒跳转到登录页面
setTimeout(() => {
  wx.navigateTo({
    url: `/pages/my/login/login?user=${userInfo.user}&pass=${userInfo.pass}`
  });
}, 1000);

      } else {
        wx.showToast({
          title: '账户已被注册',
          icon: 'none'
        });
      }
    } catch (error) {
      console.error('注册失败', error);
      wx.showToast({
        title: '注册失败，请稍后重试',
        icon: 'none'
      });
    }
  },  

 // 点击上传头像事件
uploadAvatar() {
  wx.chooseImage({
    count: 1, // 选择一张图片
    success: async (res) => {
      const tempFilePath = res.tempFilePaths[0]; // 获取临时文件路径
      console.log('选择图片成功', res);
      try {
        // 调用云存储上传文件的方法
        const uploadResult = await wx.cloud.uploadFile({
          cloudPath: 'avatar/' + new Date().getTime() + '.png', // 上传至云端的路径
          filePath: tempFilePath // 小程序临时文件路径
        });
        
        // 上传成功，获取文件 ID 并更新到数据中
        const fileID = uploadResult.fileID;
        this.setData({
          'info.avatar': fileID
        });
        
        wx.showToast({
          title: '上传成功',
          icon: 'success'
        });
      } catch (error) {
        console.error('上传失败', error);
        wx.showToast({
          title: '上传失败，请稍后重试',
          icon: 'none'
        });
      }
    },
    fail: (err) => {
      console.error('选择图片失败', err);
    }
  });
},
// 点击授权登录注册按钮
async authAndRegister() {
  try {
    // 执行微信自带的授权登录操作
    const authResult = await wx.getUserProfile({
      desc: '用于完善会员资料',
    });

    if (authResult.errMsg === 'getUserProfile:ok') {
      // 用户同意授权
      // 执行注册逻辑
      console.log(authResult)
      this.registerUserWithAuth(authResult.userInfo);
    } else {
      // 用户拒绝授权
      wx.showToast({
        title: '您拒绝了授权',
        icon: 'none'
      });
    }
  } catch (error) {
    // 授权登录失败
    console.error('授权登录失败', error);
    wx.showToast({
      title: '授权登录失败，请稍后重试',
      icon: 'none'
    });
  }
},

// 使用授权登录信息注册用户
async registerUserWithAuth(userInfo) {
  try {
    // 构造注册所需的用户信息
    const registerInfo = {
      user: userInfo.nickName, // 使用openid作为账号
      pass: '888888', // 默认密码
      avatar: userInfo.avatarUrl, // 头像
      city: userInfo.city // 城市信息
      // 其他用户信息字段
    };

    // 调用注册方法提交用户信息
    this.registerUser(registerInfo);
  } catch (error) {
    // 注册失败
    console.error('注册失败', error);
    wx.showToast({
      title: '注册失败，请稍后重试',
      icon: 'none'
    });
  }
},

});
